package com.example.sms.listener;

import com.alibaba.cloud.spring.boot.sms.SmsReportMessageListener;
import com.aliyun.mns.model.Message;
import lombok.Getter;
import org.springframework.stereotype.Component;

import java.util.LinkedList;
import java.util.List;

/**
 * 如果需要监听短信是否被对方成功接收，只需实现这个接口并初始化一个 Spring Bean 即可。
 */
@Getter
@Component
public class ReportMessageListener implements SmsReportMessageListener {

    private final List<Message> smsReportMessageSet = new LinkedList<>();

    @Override
    public boolean dealMessage(Message message) {
        // 在这里添加你的处理逻辑

        // do something
        smsReportMessageSet.add(message);
        System.err.println(this.getClass().getName() + "; " + message.toString());
        return true;
    }

}

// 短信回执消息，通过订阅 SmsReport 短信状态报告，可以获知每条短信的发送情况，了解短信是否达到终端用户的状态与相关信息。
// 这些工作已经都被 Spring Boot AliCloud SMS 封装在内部了。你只需要完成以下两步即可。
/*
1、在 application.properties 配置文件中(也可以是 application.yaml)配置 SmsReport 的队列名称。
alibaba.cloud.sms.report-queue-name=Alicom-Queue-********-SmsReport
2、实现 SmsReportMessageListener 接口，并初始化一个 Spring Bean 即可。
*/


// 使用参考阿里云 SMS 官方文档  https://github.com/alibaba/aliyun-spring-boot/blob/master/aliyun-spring-boot-samples/aliyun-sms-spring-boot-sample/READMD-zh.md
